#include <iostream>
#include <format>
#include <array>

struct A
{
    /* C 风格数组会执行构造与析构函数 */
    A(){
        std::cout<<"Constructor!\n";//输出3次
    }
    ~A(){
        std::cout<<"Destructor!\n";//输出3次
    }
};
void func(std::array<int,4>);
auto main() ->int{
    std::array<int,3> arr;

    arr[0] = 0;
    arr[1] = 1;
    arr[2] = 2;

    std::cout<<"size: "<<arr.size()<<std::endl; //返回长度信息
    std::cout<<"begin: "<<arr.begin()<<std::endl;   //返回首地址
    std::cout<<"end: "<<arr.end()<<std::endl;   //返回尾地址
    std::cout<<"empty: "<<arr.empty()<<std::endl;   //是否为空,返回bool
    std::cout<<"front: "<<arr.front()<<std::endl;   //返回头元素
    // arr.fill(3);    //全部元素填充成 3
    std::cout<<"back: "<<arr.back()<<std::endl; //返回最后一个元素
    std::cout<<"data: "<<arr.data()<<std::endl; //返回数组首地址

    //func(arr);  长度也是arrary的一部分,不同长度的arrary对象类型不同

    for(auto i:arr){
        std::cout<<std::format("{}",i)<<std::endl;
    }
    return 0;
}
